package com.hengpeng.common.scheduling;

import com.hengpeng.common.configuration.Config;

/**
 * <pre>
 * 任务调度配置类型
 * </pre>
 * @author linriqing
 * @version 1.0, 2007-1-16
 */
public class ScheduleConfig extends Config
{
	private static final long serialVersionUID = -6730620191106317644L;

	/**
	 * 任务业务逻辑类名
	 */
	private String classImpl;

	/**
	 * 任务调度描述
	 */
	private String descript;

	/**
	 * 任务调度迭代器
	 */
	private TimeIterator[] iterator;

	/**
	 * 最后一次错误信息
	 */
	private String lastErrMsg;

	/**
	 * 最后一次运行结果
	 */
	private boolean lastRunState;

	/**
	 * 最后一次调度时间
	 */
	private long lastRuntime;

	/**
	 * 任务调度名称
	 */
	private String name;

	/**
	 * 下次调度时间
	 */
	private long nextRuntime;

	/**
	 * 任务调度自定义参数
	 */
	private String scheduleParam;

	/**
	 * 超时时间, 单位:毫秒
	 */
	private long timeOut;

	/**
	 * 是否单例模式
	 */
	private boolean singleton = false;

	/**
	 * @return singleton 是否单例模式
	 */
	public boolean isSingleton()
	{
		return singleton;
	}

	/**
	 * @param singleton 是否单例模式
	 */
	public void setSingleton(boolean singleton)
	{
		this.singleton = singleton;
	}

	/**
	 * @return 任务业务逻辑类名
	 */
	public String getClassImpl()
	{
		return classImpl;
	}

	/**
	 * @return 任务调度描述
	 */
	public String getDescript()
	{
		return descript;
	}

	/**
	 * @return 任务调度迭代器
	 */
	public TimeIterator[] getIterator()
	{
		return iterator;
	}

	/**
	 * @return 最后一次错误信息
	 */
	public String getLastErrMsg()
	{
		return lastErrMsg;
	}

	/**
	 * @return 最后一次运行结果
	 */
	public boolean getLastRunState()
	{
		return lastRunState;
	}

	/**
	 * @return 最后一次调度时间
	 */
	public long getLastRuntime()
	{
		return lastRuntime;
	}

	/**
	 * @return 任务调度名称
	 */
	public String getName()
	{
		return name;
	}

	/**
	 * @return 下次调度时间(并非绝对的时间,无法精确到秒)
	 */
	public long getNextRuntime()
	{
		return nextRuntime;
	}

	/**
	 * @return 任务调度自定义参数
	 */
	public String getScheduleParam()
	{
		return scheduleParam;
	}

	/**
	 * @return timeOut 超时时间, 单位:毫秒
	 */
	public long getTimeOut()
	{
		return timeOut;
	}

	/**
	 * @param taskClass 任务业务逻辑类名
	 */
	public void setClassImpl(String taskClass)
	{
		this.classImpl = taskClass;
	}

	/**
	 * @param descript 业务调度描述
	 */
	public void setDescript(String descript)
	{
		this.descript = descript;
	}

	/**
	 * @param iterator 任务调度迭代器
	 */
	public void setIterator(TimeIterator[] iterator)
	{
		this.iterator = iterator;
	}

	/**
	 * @param lastErrMsg 最后一次错误信息
	 */
	public void setLastErrMsg(String lastErrMsg)
	{
		this.lastErrMsg = lastErrMsg;
	}

	/**
	 * @param lastRunState 最后一次运行结果
	 */
	public void setLastRunState(boolean lastRunState)
	{
		this.lastRunState = lastRunState;
	}

	/**
	 * @param lastRuntime 最后一次调度时间
	 */
	public void setLastRuntime(long lastRuntime)
	{
		this.lastRuntime = lastRuntime;
	}

	/**
	 * @param name 任务调度名称
	 */
	public void setName(String name)
	{
		this.name = name;
	}

	/**
	 * @param nextRuntime 下次调度时间
	 */
	public void setNextRuntime(long nextRuntime)
	{
		this.nextRuntime = nextRuntime;
	}

	/**
	 * @param scheduleParam 任务调度自定义参数
	 */
	public void setScheduleParam(String scheduleParam)
	{
		this.scheduleParam = scheduleParam;
	}

	/**
	 * @param timeOut 超时时间, 单位:毫秒
	 */
	public void setTimeOut(long timeOut)
	{
		this.timeOut = timeOut;
	}
}
